package org.crystal.tradecraft.model.binance.market.filter;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.crystal.tradecraft.model.binance.enumeration.FilterType;

/**
 * <h3>MAX_POSITION 过滤器</h3>
 * 这个过滤器定义账户允许的基于base asset的最大仓位。一个用户的仓位可以定义为如下资产的总和:<p>
 * <ol>
 *     <li>base asset的可用余额</li>
 *     <li>base asset的锁定余额</li>
 *     <li>所有处于open的买单的数量总和</li>
 * </ol>
 * 如果用户的仓位大于最大的允许仓位，买单会被拒绝。<p>
 * 如果一个订单的数量(quantity) 可能导致持有仓位溢出; 会触发过滤器 MAX_POSITION.
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MaxPosition extends BinanceFilter {

    public MaxPosition() {
        super(FilterType.MAX_POSITION);
    }

    private double maxPosition;
}
